home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chaos CD Blue
/
Chaos_CD_Blue__[1999].iso
/
contrib
/
cryptron
/
Diplom_original
/
idea6_en.asm
< prev
next >
Wrap
Assembly Source File
|
1999-11-21
|
5KB
|
374 lines
data0 .SET 00600h
data1 .SET 00601h
data2 .SET 00602h
data3 .SET 00603h
data4 .SET 00604h
data5 .SET 00605h
temp .SET 00606h
ser_dat .SET 00607h
key0 .SET 00608h
key1 .SET 00609h
key2 .SET 0060Ah
key3 .SET 0060Bh
key4 .SET 0060Ch
key5 .SET 0060Dh
key6 .SET 0060Eh
key7 .SET 0060Fh
e_key_begin .SET 00610h
e_key_end .SET 00640h
shift0 .SET 00670h
shift1 .SET 00671h
shift2 .SET 00672h
shift3 .SET 00673h
shift4 .SET 00674h
shift5 .SET 00675h
shift6 .SET 00676h
shift7 .SET 00677h
; ---------------------------------------------------------------------------
.DS 00608h
init_test_key: .WORD 00000h, 01111h, 02222h, 03333h
.WORD 04444h, 05555h, 06666h, 07777h
.DS 00670h
init_test_shft: .WORD 00000h, 00000h, 00000h, 00000h
.WORD 00000h, 00000h, 00000h, 00000h
; ---------------------------------------------------------------------------
.PS 0FA00h
.ENTRY
RESET: B start
.PS 0FA0Ah
B0RINT: B RINT
; -----------------------------------------------------------------------------
.PS 0FB00h
start: SPM 0
RSXM
FORT 1
RTXM
SFSM
LDPK 0Ch
CALL idea_key_exp, *, 7
LDPK 00h
LARP 00h
LARK AR0,0
LACK 010h
SACL 004h
EINT
loop: B loop
; -----------------------------------------------------------------------------
RINT: LDPK 00h
SST1 060h
LAC 000h
LDPK 0Ch
SACL ser_dat
CALL idea_cyk, *, 7
LAC ser_dat
XOR data0
CALL idea_shift, *, 7
LDPK 00h
SACL 001h
LST1 060h
EINT
RET
; ---------------------------------------------------------------------------
idea_key_exp: LRLK AR7,e_key_begin ; idea_key
LRLK AR0,e_key_end
idea_key_exp_3:
RPTK 007h
BLKD key0, *+
LARK AR2, 018h
LARP 2
idea_key_exp_2: ZALH key0
ROL
ZALH key6
OR key7
ROL
SACL key7
SACH key6
ZALH key4
OR key5
ROL
SACL key5
SACH key4
ZALH key2
OR key3
ROL
SACL key3
SACH key2
ZALH key0
OR key1
ROL
SACL key1
SACH key0
BANZ idea_key_exp_2, *-
LARP 7
CMPR 02
BBZ idea_key_exp_3
; RET
LRLK AR7,e_key_begin ; idea_key
LRLK AR0,e_key_end
idea_key_exp_1:
LAC *
XORK 00DEAh
SACL *+
CMPR 02
BBZ idea_key_exp_1
RET
; ---------------------------------------------------------------------------
idea_shift: ANDK 000FFh
LRLK AR7, 00676h
RPTK 006h
DMOV *-
SACL shift0
RET
; ---------------------------------------------------------------------------
idea_cyk: LT shift7
MPYK 00100h
PAC
OR shift6
SACL data3
LT shift5
MPYK 00100h
PAC
OR shift4
SACL data2
LT shift3
MPYK 00100h
PAC
OR shift2
SACL data1
LT shift1
MPYK 00100h
PAC
OR shift0
SACL data0
; ---------------------------------------------------------------------------
idea_start: LRLK AR7,e_key_begin ; idea_key
LRLK AR0,e_key_end
idea_loop: LAC *
BZ idea_00
LAC data0
BZ idea_01
LT data0
MPYU *+
PAC
SPH temp
SUBH temp
SUB temp
BNC idea_02
B idea_03
idea_00: LAC data0
B idea_04, *+
idea_01: LAC *+
idea_04: NEG
idea_02: ADDK 001h
idea_03: SACL data0
LAC data1
ADD *+
SACL data1
LAC data2
ADD *+
SACL data2
LAC *
BZ idea_10
LAC data3
BZ idea_11
LT data3
MPYU *+
PAC
SPH temp
SUBH temp
SUB temp
BNC idea_12
B idea_13
idea_10: LAC data3
B idea_14, *+
idea_11: LAC *+
idea_14: NEG
idea_12: ADDK 001h
idea_13: SACL data3
LAC data0
XOR data2
SACL data4
LAC data1
XOR data3
SACL data5
LAC *
BZ idea_20
LAC data4
BZ idea_21
LT data4
MPYU *+
PAC
SPH temp
SUBH temp
SUB temp
BNC idea_22
B idea_23
idea_20: LAC data4
B idea_24, *+
idea_21: LAC *+
idea_24: NEG
idea_22: ADDK 001h
idea_23: SACL data4
ADD data5
SACL data5
LAC *
BZ idea_30
LAC data5
BZ idea_31
LT data5
MPYU *+
PAC
SPH temp
SUBH temp
SUB temp
BNC idea_32
B idea_33
idea_30: LAC data5
B idea_34, *+
idea_31: LAC *+
idea_34: NEG
idea_32: ADDK 001h
idea_33: SACL data5
ADD data4
SACL data4
LAC data0
XOR data5
SACL data0
LAC data1
XOR data4
SACL data1
LAC data2
XOR data5
SACL data2
LAC data3
XOR data4
SACL data3
LAC data2
DMOV data1
SACL data1
CMPR 1
BBNZ idea_loop
LAC data2
DMOV data1
SACL data1
LAC *
BZ idea_40
LAC data0
BZ idea_41
LT data0
MPYU *+
PAC
SPH temp
SUBH temp
SUB temp
BNC idea_42
B idea_43
idea_40: LAC data0
B idea_44, *+
idea_41: LAC *+
idea_44: NEG
idea_42: ADDK 001h
idea_43: SACL data0
LAC data1
ADD *+
SACL data1
LAC data2
ADD *+
SACL data2
LAC *
BZ idea_50
LAC data3
BZ idea_51
LT data3
MPYU *+
PAC
SPH temp
SUBH temp
SUB temp
BNC idea_52
B idea_53
idea_50: LAC data3
B idea_54, *+
idea_51: LAC *+
idea_54: NEG
idea_52: ADDK 001h
idea_53: SACL data3
RET
; ---------------------------------------------------------------------------